﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SundUnderviser.ModelLayer;
using SundUnderviser.ControlLayer;

namespace SundUnderviser.GUILayer
{
    public partial class ProblemHandlingEvaluering : Form
    {
        private Patient selectedPatient;
        List<UdfoertHandlinger> handlingsliste;
        UdfoertHandlinger diagnose;
        public ProblemHandlingEvaluering(Patient patient)
        {
            InitializeComponent();
            selectedPatient = patient;
            labelAktuelPatient.Text = selectedPatient.Navn;
          //  updateListBoxes();
            findDiagnose();
        }

        private void dateTimePicker3_ValueChanged(object sender, EventArgs e)
        {

        }

        private void richTextBoxPoblem_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            String dato = dateTimePicker1.Text.ToString();
            DateTime dato1 = new DateTime();
            dato1 = DateTime.Parse(dato);
            PatientControler ctrlPatient = new PatientControler();
            try
            {
                string handling = comboBox2.SelectedItem.ToString();
                string beskrivelse = richTextBoxPoblem.Text.ToString();
                string init = textBoxInfoKildeaarsag.Text.ToString();
                String vagt = comboBox1.SelectedItem.ToString();
                int rc = ctrlPatient.GemUdfoertHandling(dato1, selectedPatient.Nr, vagt, init, handling, beskrivelse, selectedPatient.IndDato, diagnose);
                if (rc > 0)
                {
                    label6.Text = "Oplysningerne er  registreret";
                   // updateListBoxes();
                    hentOplTilDiagnose();
                    textBoxInfoKildeaarsag.Text = "";
                    richTextBoxPoblem.Text = "";

                }
            }
            catch (Exception inpute)
            {
                label6.Text = "Der mangler nogle oplysninger";
            }


        }
        private void updateListBoxes()
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();

            PatientControler ctrlPatient = new PatientControler();
            List<UdfoertHandlinger> handlingsliste = ctrlPatient.HenAlleHandlinger(selectedPatient.Nr);
            if (handlingsliste != null)
            {
                foreach (UdfoertHandlinger udfoertObj in handlingsliste)
                {
                    if (udfoertObj.Handling.Equals("Sygepleje diagnose"))
                    {
                        listBox1.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                    }
                    if (udfoertObj.Handling.Equals("Mål"))
                    {
                        listBox2.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                    }

                    if (udfoertObj.Handling.Equals("Sygepleje handling"))
                    {
                        listBox3.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                    }
                    if (udfoertObj.Handling.Equals("Evaluering"))
                    {
                        listBox4.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                    }
                }
            }
        }
        private void findDiagnose()
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();

            PatientControler ctrlPatient = new PatientControler();
            handlingsliste = ctrlPatient.HenAlleDiagnoser(selectedPatient.Nr);
            if (handlingsliste != null)
            {
                foreach (UdfoertHandlinger udfoertObj in handlingsliste)
                {
                    if (udfoertObj.Handling.Equals("Sygepleje diagnose"))
                    {
                       comboBox3.Items.Add(udfoertObj.Beskrivelse);
                    }
                    
                }
            }
        }

        private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();
            int index = comboBox3.SelectedIndex;
            if (handlingsliste != null )
            {
                Console.WriteLine("valgt diagnose");
                diagnose = handlingsliste.ElementAt(index);
                PatientControler ctrlPatient = new PatientControler();
                List<UdfoertHandlinger> handlingTilDiagnose = ctrlPatient.HenAlleHandlingerTilDiagnose(selectedPatient.Nr, diagnose);
                if (handlingTilDiagnose != null)
                {
                    foreach (UdfoertHandlinger udfoertObj in handlingTilDiagnose)
                    {

                        if (udfoertObj.Handling.Equals("Mål"))
                        {
                            listBox2.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }

                        if (udfoertObj.Handling.Equals("Sygepleje handling"))
                        {
                            listBox3.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }
                        if (udfoertObj.Handling.Equals("Evaluering"))
                        {
                            listBox4.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }
                    }
                }
            }
        }
        private void hentOplTilDiagnose()
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();
       
            if(diagnose != null)
            {
                PatientControler ctrlPatient = new PatientControler();
                List<UdfoertHandlinger> handlingTilDiagnose = ctrlPatient.HenAlleHandlingerTilDiagnose(selectedPatient.Nr, diagnose);
                if (handlingTilDiagnose != null)
                {
                    foreach (UdfoertHandlinger udfoertObj in handlingTilDiagnose)
                    {

                        if (udfoertObj.Handling.Equals("Mål"))
                        {
                            listBox2.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }

                        if (udfoertObj.Handling.Equals("Sygepleje handling"))
                        {
                            listBox3.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }
                        if (udfoertObj.Handling.Equals("Evaluering"))
                        {
                            listBox4.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }
                    }
                }
            }
        }
        

        private void ProblemHandlingEvaluering_Load(object sender, EventArgs e)
        {

        }

        private void listBox3_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}

